Transport control protocol (TCP) is a transport protocol widely used in the transmission of data across networks and internetworks, and is utilized by numerous application types. One concern when transporting large amounts of data across a network is network congestion, which can lead to deterioration in the capability of the network to transport data. TCP includes congestion control and avoidance methods that determine an appropriate congestion window for a network node or element by increasing the traffic through the network node until packet loss is detected. The use of an additive increase/multiplicative decrease feedback control algorithm in TCP causes a dramatic reduction in the rate of packet transmission from a network node when congestion is detected. TCP only enables endpoints to detect and address network node congestion. In addition, detection of congestion is accomplished by dropping and retransmitting packets.
The Explicit Congestion Notification (ECN) extension to TCP enables end-to-end notification of network congestion without dropping packets. For example, an ECN-aware router may provide an indication in an packet header in order to signal impending congestion instead of dropping a packet.